home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / f2c / may_5_92.lha / f2c.VMay_5_1992 / libF77 / z_sqrt.c < prev   
C/C++ Source or Header  |  1992-05-07  |  332b  |  23 lines

  1. #include "f2c.h"
  2.  
  3. VOID z_sqrt(r, z)
  4. doublecomplex *r, *z;
  5. {
  6. double mag, sqrt(), cabs();
  7.  
  8. if( (mag = cabs(z->r, z->i)) == 0.)
  9.     r->r = r->i = 0.;
  10. else if(z->r > 0)
  11.     {
  12.     r->r = sqrt(0.5 * (mag + z->r) );
  13.     r->i = z->i / r->r / 2;
  14.     }
  15. else
  16.     {
  17.     r->i = sqrt(0.5 * (mag - z->r) );
  18.     if(z->i < 0)
  19.         r->i = - r->i;
  20.     r->r = z->i / r->i / 2;
  21.     }
  22. }
  23.